﻿/*
Необходимо разработать интерфейс для объединения в структуру данных множества объектов различных классов 
* 
абстрактный базовый класс объектов object,для которого предусмотреть виртуальные методы: 
- загрузки объекта из текстовой строки,
- выгрузки объекта в текстовую строку в динамической памяти,
- добавления объекта в последовательный двоичный файл,
- чтения объекта из последовательного двоичного файла, 
- возврата уникального идентификатора класса
- сравнения двух объектов, 
- “сложения “(объединения) двух объектов, 
- создание динамической копии объекта.
Сделать классы хранимых объектов производными от абстрактного базового класса object
(например, класс Float, String и класс из лабораторной работы). 
Коллекция представляет собой структуру данных, хранящую указатели на объекты произвольного типа - объекты базового класса.
Программа должна обеспечивать просмотр коллекции, 
добавление объекта выбранного типа,
редактирование и  удаление объекта,
сложение и сравнение объектов при условии совпадения типов с помещением результата в ту же коллекцию,
сохранение и загрузку объектов из текстового (или двоичного) файла. 
Программа должна реализовывать указанные выше действия.
Протестировать структуру данных на простом типе (например, Int или String). 
Программа тестирования должна содержать меню, обеспечивающее выбор операций.
Структура данных для организации коллекции:
Динамический массив указателей на записи. 
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace KursovickCS
{
   interface  IObject
    {
        // Сложение(объединения) объектов
        void Sum(IObject obj);

        // Cравнение объектов
        int Compare(IObject obj);

        // Равенство объектов
        int Equals(IObject obj);
      
        // Возращает имя класса 
        string Name();

        Object UserData();

    }
}
